|
RAIS
3.2
|
00001 00028 using System; 00029 using System.Collections.Generic; 00030 using System.Text; 00031 using System.Transactions; 00032 using System.Xml; 00033 00034 using RAIS.Common.DynamicMaskManagement; 00035 using RAIS.Common.TableManagement; 00036 00037 using TableTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Table.TableTypeData>; 00038 using FieldTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Field.FieldTypeData>; 00039 using FieldSizes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Field.FieldSizeData>; 00040 using NecessityTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Field.NecessityTypeData>; 00041 using TableGroups = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.TableGroup>; 00042 using Tables = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Table>; 00043 using Fields = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Field>; 00044 using QueryTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query.QueryTypeData>; 00045 using Queries = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query>; 00046 using QueryParameterTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.QueryParameter.QueryParameterTypeData>; 00047 //using QueryParameterTypes = System.Collections.Generic.Dictionary<RAIS.Common.TableManagement.QueryParameter.QueryParameterType, RAIS.Common.TableManagement.QueryParameter.QueryParameterTypeData>; 00048 using QueryParameters = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.QueryParameter>; 00049 using CustomizationTypes = System.Collections.Generic.Dictionary<string, RAIS.Common.TableManagement.Query.CustomizationType>; 00050 00051 namespace RAIS.ApplicationLogicLayer 00052 { 00056 public class TableManagement 00057 { 00058 //********************************************************************* 00059 #region Public static methods 00060 00061 00062 00063 00064 00065 00066 public static bool IsEmptyFelds(string tableName, string fieldName) 00067 { 00068 return DataAccessLayer.TableManagement.IsEmptyFelds(tableName, fieldName); 00069 } 00073 public static void InitializeDAL() 00074 { 00075 new DataAccessLayer.TableManagement(); 00076 } 00084 public static Tables GetCustomTablesByGroup(TableGroup tableGroup) 00085 { 00086 return RAIS.DataAccessLayer.TableManagement.GetCustomTablesByTableGroup(tableGroup); 00087 } 00095 public static Tables GetTablesByGroup(TableGroup tableGroup, bool showProtectors, bool showEvaluators) 00096 //public static Tables GetTablesByGroup(TableGroup tableGroup, bool designMode) 00097 { 00098 return RAIS.DataAccessLayer.TableManagement.GetTablesByTableGroup(tableGroup, showProtectors, showEvaluators); 00099 //return RAIS.DataAccessLayer.TableManagement.GetTablesByTableGroup(tableGroup, designMode); 00100 } 00106 public static Table GetTableByTableID(int id) 00107 { 00108 return RAIS.DataAccessLayer.TableManagement.GetTableByTableID(id); 00109 } 00117 public static bool AddTable(Table table, TableGroup tableGroup, string maskName, int subcategoryID, DynamicMask.DynamicMaskType? dynamicMaskType, string dynamicMaskName, bool addForeignKeyField, bool createDymamicMask, ref string returnMessage) 00118 { 00119 return RAIS.DataAccessLayer.TableManagement.AddTable(table, tableGroup, maskName, subcategoryID, dynamicMaskType, dynamicMaskName, addForeignKeyField, createDymamicMask, ref returnMessage); 00120 } 00128 public static bool AddField(Table table, Field field, ref string returnMessage) 00129 { 00130 return RAIS.DataAccessLayer.TableManagement.AddField(table, field, ref returnMessage); 00131 } 00138 public static bool RemoveTable(Table table, ref string returnMessage) 00139 { 00140 return RAIS.DataAccessLayer.TableManagement.RemoveTable(table, ref returnMessage); 00141 } 00149 public static bool SaveCustomTable(Table table, ref string returnMessage) 00150 { 00151 using (TransactionScope ts = new TransactionScope()) 00152 { 00153 bool success = true; 00154 foreach (Field field in table.RemovedFields.Values) 00155 { 00156 if (!RemoveField(field, ref returnMessage)) 00157 { 00158 success = false; 00159 break; 00160 } 00161 } 00162 00163 if (success) 00164 { 00165 foreach (Field field in table.AddedFields.Values) 00166 { 00167 if (!AddField(table, field, ref returnMessage)) 00168 { 00169 success = false; 00170 break; 00171 } 00172 } 00173 } 00174 00175 if (success) 00176 { 00177 returnMessage = RAIS.Common.Messages.MODIFICATIONS_SAVED; 00178 table.Modified = false; 00179 ts.Complete(); 00180 } 00181 return success; 00182 } 00183 } 00190 public static bool SaveFieldOrder(Field field, ref string returnMessage) 00191 { 00192 return RAIS.DataAccessLayer.TableManagement.SaveFieldOrder(field, ref returnMessage); 00193 } 00200 public static bool SaveFieldQueryName(Field field, ref string returnMessage) 00201 { 00202 return RAIS.DataAccessLayer.TableManagement.SaveFieldQueryName(field, ref returnMessage); 00203 } 00210 public static bool SaveField(Field field, ref string returnMessage) 00211 { 00212 return RAIS.DataAccessLayer.TableManagement.SaveField(field, ref returnMessage); 00213 } 00220 public static bool RemoveField(Field field, ref string returnMessage) 00221 { 00222 return RAIS.DataAccessLayer.TableManagement.RemoveField(field, ref returnMessage); 00223 } 00229 public static Fields GetLookupFieldsByTable(Table table) 00230 { 00231 Fields fields = RAIS.DataAccessLayer.TableManagement.GetFieldsByTable(table); 00232 Fields lookupFields = new Dictionary<string, Field>(); 00233 00234 foreach (KeyValuePair<string, Field> kvp in fields) 00235 { 00236 Field field = kvp.Value; 00237 if (field.IsLookupField) 00238 lookupFields.Add(kvp.Key, kvp.Value); 00239 } 00240 return lookupFields; 00241 } 00247 public static Fields GetTextFieldsByTable(Table table) 00248 { 00249 Fields fields = RAIS.DataAccessLayer.TableManagement.GetFieldsByTable(table); 00250 Fields lookupFields = new Dictionary<string, Field>(); 00251 00252 foreach (KeyValuePair<string, Field> kvp in fields) 00253 { 00254 Field field = kvp.Value; 00255 if (field.IsTextField) 00256 lookupFields.Add(kvp.Key, kvp.Value); 00257 } 00258 return lookupFields; 00259 } 00265 public static Fields GetFieldsByTable(Table table) 00266 { 00267 return RAIS.DataAccessLayer.TableManagement.GetFieldsByTable(table); 00268 } 00274 public static XmlDocument GetTableAndFieldXml() 00275 { 00276 return RAIS.DataAccessLayer.TableManagement.GetTableAndFieldXml(); 00277 } 00283 public static FieldSizes GetFieldSizesByFieldType(Field.FieldType fieldType) 00284 { 00285 return RAIS.DataAccessLayer.TableManagement.GetFieldSizesByFieldType(fieldType); 00286 } 00292 public static Queries GetQueries() 00293 { 00294 return RAIS.DataAccessLayer.TableManagement.GetQueries(); 00295 } 00301 public static Queries GetQueriesByCustomizationType(Query.CustomizationType customizationType) 00302 { 00303 Query.QueryType queryType = Query.GetQueryTypeByCustomizationType(customizationType); 00304 return DataAccessLayer.TableManagement.GetQueriesByQueryType(queryType); 00305 } 00311 public static Queries GetQueriesByQueryType(Query.QueryType queryType) 00312 { 00313 return DataAccessLayer.TableManagement.GetQueriesByQueryType(queryType); 00314 } 00321 public static bool AddQuery(Query query, ref string returnMessage) 00322 { 00323 return RAIS.DataAccessLayer.TableManagement.AddQuery(query, ref returnMessage); 00324 } 00331 public static bool SaveQuery(Query query, ref string returnMessage) 00332 { 00333 return RAIS.DataAccessLayer.TableManagement.SaveQuery(query, ref returnMessage); 00334 } 00341 public static bool RemoveQuery(Query query, ref string returnMessage) 00342 { 00343 return RAIS.DataAccessLayer.TableManagement.RemoveQuery(query, ref returnMessage); 00344 } 00351 public static bool ValidateQueryParameters(Query query, ref string returnMessage) 00352 { 00353 bool success = true; 00354 bool startDateExists = false; 00355 bool endDateExists = false; 00356 if (query != null) 00357 { 00358 foreach (KeyValuePair<string, QueryParameter> kvp in query.QueryParameters) 00359 { 00360 QueryParameter parameter = kvp.Value; 00361 if (parameter.Type == QueryParameter.QueryParameterType.Unknown) 00362 { 00363 returnMessage = Common.Messages.QUERY_PARAMETER_UNKNOWN_EXISTS; 00364 success = false; 00365 break; 00366 } 00367 00368 if (parameter.Type == QueryParameter.QueryParameterType.DatesRangeStartDate) 00369 startDateExists = true; 00370 if (parameter.Type == QueryParameter.QueryParameterType.DatesRangeEndDate) 00371 endDateExists = true; 00372 } 00373 00374 if (startDateExists && !endDateExists 00375 || !startDateExists && endDateExists) 00376 { 00377 returnMessage = Common.Messages.QUERY_PARAMETER_DATES_RANGE_ERROR; 00378 success = false; 00379 } 00380 } 00381 00382 return success; 00383 } 00390 public static bool CreateQuery(Query query, ref string returnMessage) 00391 { 00392 return RAIS.DataAccessLayer.TableManagement.CreateQuery(query, ref returnMessage); 00393 } 00400 public static bool CheckQuery(Query query, ref string returnMessage) 00401 { 00402 return RAIS.DataAccessLayer.TableManagement.CheckQuery(query, ref returnMessage); 00403 } 00409 public static QueryParameterTypes GetQueryParameterTypesByQuery(Query query) 00410 { 00411 QueryParameterTypes allQueryParameterTypes = DataAccessLayer.TableManagement.QueryParameterTypes; 00412 QueryParameterTypes queryParameterTypes = new Dictionary<string, QueryParameter.QueryParameterTypeData>(); 00413 00414 if (query != null) 00415 { 00416 foreach (KeyValuePair<string, QueryParameter.QueryParameterTypeData> kvp in allQueryParameterTypes) 00417 { 00418 QueryParameter.QueryParameterTypeData typeData = kvp.Value; 00419 if (query.QueryForFilters && typeData.ParameterTypeForFilters) 00420 queryParameterTypes.Add(kvp.Key, typeData); 00421 00422 if (!query.QueryForFilters && typeData.ParameterTypeForOthers) 00423 queryParameterTypes.Add(kvp.Key, typeData); 00424 } 00425 } 00426 00427 return queryParameterTypes; 00428 } 00434 public static QueryParameters GetQueryParametersByQuery(Query query) 00435 { 00436 return DataAccessLayer.TableManagement.GetQueryParametersByQuery(query); 00437 } 00445 public static bool AddQueryParameter(Query query, QueryParameter queryParameter, ref string returnMessage) 00446 { 00447 return DataAccessLayer.TableManagement.AddQueryParameter(query, queryParameter, ref returnMessage); 00448 } 00455 public static bool SaveQueryParameter(QueryParameter queryParameter, ref string returnMessage) 00456 { 00457 return DataAccessLayer.TableManagement.SaveQueryParameter(queryParameter, ref returnMessage); 00458 } 00465 public static bool SaveQueryParameterOrder(QueryParameter queryParameter, ref string returnMessage) 00466 { 00467 return DataAccessLayer.TableManagement.SaveQueryParameterOrder(queryParameter, ref returnMessage); 00468 } 00475 public static bool RemoveQueryParameter(QueryParameter queryParameter, ref string returnMessage) 00476 { 00477 return DataAccessLayer.TableManagement.RemoveQueryParameter(queryParameter, ref returnMessage); 00478 } 00483 public static CustomizationTypes GetCustomizationTypes() 00484 { 00485 CustomizationTypes types = new Dictionary<string, Query.CustomizationType>(); 00486 00487 types.Add("List With Filter Mask", Query.CustomizationType.ListWithFilter); 00488 types.Add("Query Report", Query.CustomizationType.QueryReport); 00489 types.Add("Statistics Report", Query.CustomizationType.StatisticsReport); 00490 types.Add("Consistency Check", Query.CustomizationType.ConsistencyCheck); 00491 types.Add("Dynamic Mask Field", Query.CustomizationType.EntryFilter); 00492 types.Add("RAN Autogeneration", Query.CustomizationType.RanAutogeneration); 00493 00494 return types; 00495 } 00502 public static bool CreateHistoryTable(Table table, ref string returnMessage) 00503 { 00504 return RAIS.DataAccessLayer.TableManagement.CreateHistoryTable(table, ref returnMessage); 00505 } 00511 public static List<string> GetQueryAssignedObjectsNames(Query query) 00512 { 00513 return DataAccessLayer.TableManagement.GetQueryAssignedObjectsNames(query); 00514 } 00520 public static bool IsTableContainData(Table table) 00521 { 00522 return DataAccessLayer.TableManagement.IsTableContainData(table); 00523 } 00524 #endregion 00525 //********************************************************************* 00526 #region Properties 00527 00534 public static FieldTypes FieldTypes 00535 { 00536 get { return RAIS.DataAccessLayer.TableManagement.FieldTypes; } 00537 } 00545 public static FieldSizes FieldSizes 00546 { 00547 get { return RAIS.DataAccessLayer.TableManagement.FieldSizes; } 00548 } 00556 public static NecessityTypes NecessityTypes 00557 { 00558 get { return RAIS.DataAccessLayer.TableManagement.NecessityTypes; } 00559 } 00567 public static TableTypes TableTypes 00568 { 00569 get { return RAIS.DataAccessLayer.TableManagement.TableTypes; } 00570 } 00578 public static TableGroups TableGroups 00579 { 00580 get { return RAIS.DataAccessLayer.TableManagement.TableGroups; } 00581 } 00589 public static Tables AllTables 00590 { 00591 get { return RAIS.DataAccessLayer.TableManagement.AllTables; } 00592 } 00600 public static QueryTypes QueryTypes 00601 { 00602 get { return RAIS.DataAccessLayer.TableManagement.QueryTypes; } 00603 } 00605 //\brief This property retrieves a list of all available query parameter types. 00606 00607 //\return Dictionary of query parameter type names vs query parameter type objects 00608 //\warning Addressing this property casues an MS SQL query. 00609 // Use is for initialising a local variable instead of addressing it iteratively. 00610 //*/ 00611 //public static QueryParameterTypes QueryParameterTypes 00612 //{ 00613 // get { return RAIS.DataAccessLayer.TableManagement.QueryParameterTypes; } 00614 //} 00615 #endregion 00616 } 00617 }